{"componentChunkName":"component---src-templates-blog-post-js","path":"/2018-08-31-ternary-operator /","result":{"data":{"site":{"siteMetadata":{"title":"LearnApplyShare"}},"markdownRemark":{"id":"444c8686-8990-5e8e-b482-9a4ecc7d1461","excerpt":"주어진 배열에서 양수의 개수를 구하고자 할 때 reduce를 이용하여 아래와 같이 양수의 누적값을 카운트할 수 있다.  함수의 결과값을 잠시 예측해보자. 양수의 개수는 2가 맞지만 위 코드의 실행결과는 1이 된다. 왜 일까? 문제는  표현에 있다. a…","html":"<p>주어진 배열에서 양수의 개수를 구하고자 할 때 reduce를 이용하여 아래와 같이 양수의 누적값을 카운트할 수 있다.</p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token punctuation\">;</span><span class=\"token punctuation\">[</span><span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">3</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">.</span><span class=\"token function\">reduce</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">a<span class=\"token punctuation\">,</span> c</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">(</span>a <span class=\"token operator\">+</span> c <span class=\"token operator\">></span> <span class=\"token number\">0</span> <span class=\"token operator\">?</span> <span class=\"token number\">1</span> <span class=\"token operator\">:</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span></code></pre></div>\n<p><code class=\"language-text\">reduce()</code> 함수의 결과값을 잠시 예측해보자.</p>\n<br>\n<br>\n<br>\n<br>\n<br>\n<br>\n<br>\n<br>\n<br>\n<br>\n혹시 결과값이 2라고 예측하신 분만 계속 보세요..\n<br>\n<br>\n<br>\n<p>양수의 개수는 2가 맞지만<br>\n위 코드의 실행결과는 1이 된다.</p>\n<br>\n<h3 id=\"왜-일까\" style=\"position:relative;\"><a href=\"#%EC%99%9C-%EC%9D%BC%EA%B9%8C\" aria-label=\"왜 일까 permalink\" class=\"remark-autolink-headers before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>왜 일까?</h3>\n<p>문제는 <code class=\"language-text\">a + c>0 ? 1 : 0</code> 표현에 있다. a 변수에 삼항연산자의 값을 더하고자 했던 표현이지만, 실제 연산은 <code class=\"language-text\">(a + c)>0 ? 1 : 0</code> 와 같이 수행이 되기 때문이다</p>\n<br>\n<h3 id=\"결론은\" style=\"position:relative;\"><a href=\"#%EA%B2%B0%EB%A1%A0%EC%9D%80\" aria-label=\"결론은 permalink\" class=\"remark-autolink-headers before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>결론은</h3>\n<p>삼항연산자를 사용할 땐 꼭 괄호로 묶어주는 습관을 갖자</p>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">a + (c>0 ? 1 : 0)</code></pre></div>","frontmatter":{"title":"삼항연산자 사용시 주의사항","date":"August 31, 2018","description":null,"tags":["ternary-operator"]}}},"pageContext":{"slug":"/2018-08-31-ternary-operator /","previous":{"fields":{"slug":"/2018-08-31-array-reduce/"},"frontmatter":{"title":"[js] How reduce() works"}},"next":{"fields":{"slug":"/2018-09-01-minimum-number /"},"frontmatter":{"title":"안전한 비밀번호 체크"}}}}}